package com.aspose.cells;

abstract class zaob {
   double a = 0.0D;

   protected double a(double var1) {
      return 0.0D;
   }

   protected void a(double var1, double[] var3) {
   }

   public boolean a(double[] var1, int var2, double var3) {
      double var12 = 0.0D;
      double[] var14 = new double[2];
      int var5 = var2;
      double var10 = var1[0];
      this.a(var10, var14);

      for(double var6 = var3 + 1.0D; var6 >= var3 && var5 != 0; --var5) {
         if (var14[1] == 0.0D) {
            var14[1] = Math.abs(-1.7976931348623157E308D);
         }

         var12 = var10 - var14[0] / var14[1];
         if (var12 <= 0.0D) {
            var12 = Math.abs(0.1D);
         }

         this.a(var12, var14);
         var6 = Math.abs(var12 - var10);
         double var8 = Math.abs(var14[0]);
         if (var8 > var6) {
            var6 = var8;
         }

         var10 = var12;
      }

      var1[0] = var12;
      return true;
   }

   public boolean a(double[] var1, double var2, double var4, double var6) {
      double var8 = var6 - var4;
      double var10 = 1.0E-11D;
      short var12 = 300;

      int var13;
      for(var13 = 0; this.a(var4) > var2 && this.a(var6) > var2 && var13 < var12; ++var13) {
         var4 = var6;
         var6 += var8;
      }

      while(this.a(var4) < var2 && this.a(var6) < var2 && var13 < var12) {
         var6 = var4;
         var4 -= var8;
         ++var13;
         if (var4 < 0.0D) {
            var4 = 0.0D;
         }
      }

      for(; Math.abs(var4 - var6) > var8 * var10 && var13 < var12; ++var13) {
         var1[0] = (var4 + var6) / 2.0D;
         if (this.a(var1[0]) > var2) {
            var4 = var1[0];
         } else {
            var6 = var1[0];
         }
      }

      return var13 != var12;
   }
}
